﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BorisTheBlade
{
	/// <summary>
	/// Информация о собственных сделках на покупку/продажу.
	/// </summary>
	class WrapperTrades
	{

		private long m_TradeNo;
		/// <summary>
		/// Номер сделки в торговой системе
		/// </summary>
		public long TradeNo {get {return m_TradeNo;} set {m_TradeNo=value;}}
		
		private long m_OrderNo;
		/// <summary>
		/// Номер заявки, на основании которой заключена сделка
		/// </summary>
		public long OrderNo {get {return m_OrderNo;} set {m_OrderNo=value;}}
	
		private DateTime m_TradeTime;
		/// <summary>
		/// Время регистрации сделки в торговой системе
		/// </summary>
		public DateTime TradeTime {get {return m_TradeTime;} set {m_TradeTime = value;}}

		private int m_SecID;
		/// <summary>
		/// Идентификатор финансового инструмента
		/// </summary>
		public int SecID { get { return m_SecID; } set { m_SecID = value; } }

		private string m_SecBoard;
		/// <summary>
		/// Код режима торгов для финансового инструмента
		/// </summary>
		public string SecBoard { get { return m_SecBoard; } set { m_SecBoard = value; } }

		private string m_SecCode;
		/// <summary>
		/// Код финансового инструмента
		/// </summary>
		public string SecCode { get { return m_SecCode; } set { m_SecCode = value; } }

		private string m_IssueCode;
		/// <summary>
		/// Код выпуска ценной бумаги
		/// </summary>
		public string IssueCode {get {return m_IssueCode;} set {m_IssueCode = value;}}

		private string m_BuySell;
		/// <summary>
		/// Направленность заявки: "B" – покупка, "S" – продажа
		/// </summary>
		public string BuySell {get {return m_BuySell;} set {m_BuySell = value;}}

		private int m_Quantity;
		/// <summary>
		/// Объем сделки, выраженный в лотах
		/// </summary>
		public int Quantity {get {return m_Quantity;} set {m_Quantity = value;}}

		private double m_Price;
		/// <summary>
		/// Цена за одну ценную бумагу
		/// </summary>
		public double Price {get {return m_Price;} set {m_Price = value;}}

		private double m_Value;
		/// <summary>
		/// Объем сделки, выраженный в рублях
		/// </summary>
		public double Value {get {return m_Value;} set {m_Value = value;}}

		private double m_Yield;
		/// <summary>
		/// Доходность, рассчитанная по цене заявки
		/// </summary>
		public double Yield {get {return m_Yield;} set {m_Yield = value;}}

		private double m_AccruedInt;
		/// <summary>
		/// Накопленный купонный доход, рассчитанный для указанного в заявке количества ценных бумаг, выраженный в рублях
		/// </summary>
		public double AccruedInt {get {return m_AccruedInt;} set {m_AccruedInt = value;}}

		private double m_RepoRate;
		/// <summary>
		/// Ставка РЕПО, %
		/// </summary>
		public double RepoRate {get {return m_RepoRate;} set {m_RepoRate = value;}}

		private int m_RepoTerm;
		/// <summary>
		/// Срок РЕПО
		/// </summary>
		public int RepoTerm {get {return m_RepoTerm;} set {m_RepoTerm = value;}}

		private double m_StartDiscount;
		/// <summary>
		/// Начальный дисконт, %
		/// </summary>
		public double StartDiscount {get {return m_StartDiscount;} set {m_StartDiscount = value;}}

		private double m_Commission;
		/// <summary>
		/// Объем комиссии по сделке, выраженный в рублях
		/// </summary>
		public double Commission {get {return m_Commission;} set {m_Commission = value;}}

		private string m_Period;
		/// <summary>
		/// Период торговой сессии, когда была заключена сделка: "O" – открытие, "N" – нормальный, "C" – закрытие
		/// </summary>
		public string Period {get {return m_Period;} set {m_Period = value;}}

		private string m_TradeType;
		/// <summary>
		/// Тип сделки: "T" – обычная, "N" – внебиржевая
		/// </summary>
		public string TradeType {get {return m_TradeType;} set {m_TradeType = value;}}

		private string m_SettleCode;
		/// <summary>
		/// Код расчетов по сделке
		/// </summary>
		public string SettleCode {get {return m_SettleCode;} set {m_SettleCode = value;}}

		private string m_BrokerRef;
		/// <summary>
		/// Ссылка типа [счет клиента]/[субсчет]
		/// </summary>
		public string BrokerRef {get {return m_BrokerRef;} set {m_BrokerRef = value;}}

		private string m_BrokerID;
		/// <summary>
		/// Код клиента
		/// </summary>
		public string BrokerID {get {return m_BrokerID;} set {m_BrokerID = value;}}

		private string m_UserID;
		/// <summary>
		/// Идентификатор трейдера, совершившего сделку
		/// </summary>
		public string UserID {get {return m_UserID;} set {m_UserID = value;}}

		private string m_FirmID;
		/// <summary>
		/// Идентификатор фирмы, от имени которой была совершена сделка
		/// </summary>
		public string FirmID {get {return m_FirmID;} set {m_FirmID = value;}}

		private string m_Account;
		/// <summary>
		/// Торговый счет, в счет которого заключена данная сделка
		/// </summary>
		public string Account {get {return m_Account;} set {m_Account = value;}}

		private string m_ExtRef;
		/// <summary>
		/// Поле-примечание, используемое для обратной связи с внешними системами
		/// </summary>
		public string ExtRef {get {return m_ExtRef;} set {m_ExtRef = value;}}

}
}
